package com.pureut.system.api.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.pureut.system.api.vo.MaterialVo;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 采购订单
 */
@Data
public class PurchaseOrderDto {

    /**
     * id
     */
    private long id;

    /**
     * 采购订单号
     */
    private String purchaseOrderNo;

    /**
     * 单据状态
     */
    private String status;

    /**
     * 单据状态(字典值)
     */
    private String statusDict;

    /**
     * 采购合同号
     */
    private String purchaseContractNo;

    /**
     * 供应商id
     */
    private long supplierId;

    /**
     * 预计到货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date estimatedTime;

    /**
     * 实际到货重量
     */
    private String actualArrivalWeight;

    /**
     * 退货重量
     */
    private String backWeight;

    /**
     * 实际重量
     */
    private String actualWeight;

    /**
     * 实际单价
     */
    private String actualUnitPrice;

    /**
     * 审核人
     */
    private String reviewBy;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /**
     * 首批到货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstBatchTime;

    /**
     * 末批到货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endBatchTime;

    /**
     * 附件
     */
    private String enclosureUrl;

    /**
     * 备注
     */
    private String remark;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 供应商编号
     */
    private String supplierNum;

    /**
     * 开单人
     */
    private String createBy;

    /**
     * 开单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * 物料编码
     */
    private String materialCode;


    /** 物料规格 */
    private String materialSpec;

    /**
     * 采购计划单号
     */
    private String purchasementNum;

    /**
     * 计划重量
     */
    private String planWeight;

    /**
     * 计划单价
     */
    private String plannedUnitPrice;

    /**
     * 需求时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date demandTime;

    /**
     * 物料类型
     */
    private String materialCategory;

    /**
     * 物料id
     */
    private long materialId;

    /**
     * 采购计划单号
     */
    private String purchasePlanNo;

    /**
     * 物料列表
     */
    private List<MaterialVo> materialList;

}
